import type { Effect, Reducer } from 'umi';

// 定义state类型
export interface commonInfo {
  name: string;
  color: string;
}

// 定一个dva--modal结构类型, 包括namespace,state,effect,reducers,subscriptions,参考地址：https://dvajs.com/api/#namespace
export interface commonInfoType {
  namespace: 'commonInfo'; // model 的命名空间，同时也是他在全局 state 上的属性，只能用字符串，不支持通过 . 的方式创建多层命名空间
  state: commonInfo; //初始值
  effects: {
    // 以 key/value 格式定义 effect。用于处理异步操作和业务逻辑，不直接修改 state。由 action 触发，
    getNamePort: Effect;
  };
  reducer: {
    //以 key/value 格式定义 reducer。用于处理同步操作，唯一可以修改 state 的地方。由 action 触发
    editGlobalColor: Reducer;
  };
}

const commonInfoModal: commonInfoType = {
  namespace: 'commonInfo',
  state: {
    name: 'gryer',
    color: '#fe0000',
  },
  effects: {
    getNamePort() {},
  },
  reducer: {
    editGlobalColor(state, action) {},
  },
};

export default commonInfoModal;
